<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstAudioEncoder: GStreamer Base Plugins 1.0 Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="GstAudioDecoder.html" title="GstAudioDecoder">
<link rel="next" href="GstAudioFilter.html" title="GstAudioFilter">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GstAudioEncoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GstAudioEncoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#GstAudioEncoder.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GstAudioEncoder.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GstAudioDecoder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GstAudioFilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstAudioEncoder"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstAudioEncoder.top_of_page"></a>GstAudioEncoder</span></h2>
<p>GstAudioEncoder — Base class for audio encoders</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstAudioEncoder.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" title="GST_AUDIO_ENCODER_SINK_PAD()">GST_AUDIO_ENCODER_SINK_PAD</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" title="GST_AUDIO_ENCODER_SRC_PAD()">GST_AUDIO_ENCODER_SRC_PAD</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-INPUT-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_INPUT_SEGMENT()">GST_AUDIO_ENCODER_INPUT_SEGMENT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-OUTPUT-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_OUTPUT_SEGMENT()">GST_AUDIO_ENCODER_OUTPUT_SEGMENT</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-STREAM-LOCK:CAPS" title="GST_AUDIO_ENCODER_STREAM_LOCK()">GST_AUDIO_ENCODER_STREAM_LOCK</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-STREAM-UNLOCK:CAPS" title="GST_AUDIO_ENCODER_STREAM_UNLOCK()">GST_AUDIO_ENCODER_STREAM_UNLOCK</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()">gst_audio_encoder_finish_frame</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-allocate-output-buffer" title="gst_audio_encoder_allocate_output_buffer ()">gst_audio_encoder_allocate_output_buffer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-allocator" title="gst_audio_encoder_get_allocator ()">gst_audio_encoder_get_allocator</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-output-format" title="gst_audio_encoder_set_output_format ()">gst_audio_encoder_set_output_format</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-negotiate" title="gst_audio_encoder_negotiate ()">gst_audio_encoder_negotiate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gst-plugins-base-libs-GstAudio.html#GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-audio-info" title="gst_audio_encoder_get_audio_info ()">gst_audio_encoder_get_audio_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-latency" title="gst_audio_encoder_get_latency ()">gst_audio_encoder_get_latency</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-get-tolerance" title="gst_audio_encoder_get_tolerance ()">gst_audio_encoder_get_tolerance</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-drainable" title="gst_audio_encoder_set_drainable ()">gst_audio_encoder_set_drainable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-frame-max" title="gst_audio_encoder_set_frame_max ()">gst_audio_encoder_set_frame_max</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()">gst_audio_encoder_set_frame_samples_min</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()">gst_audio_encoder_set_frame_samples_max</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-hard-min" title="gst_audio_encoder_set_hard_min ()">gst_audio_encoder_set_hard_min</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-hard-resync" title="gst_audio_encoder_set_hard_resync ()">gst_audio_encoder_set_hard_resync</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-headers" title="gst_audio_encoder_set_headers ()">gst_audio_encoder_set_headers</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-latency" title="gst_audio_encoder_set_latency ()">gst_audio_encoder_set_latency</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-lookahead" title="gst_audio_encoder_set_lookahead ()">gst_audio_encoder_set_lookahead</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-mark-granule" title="gst_audio_encoder_set_mark_granule ()">gst_audio_encoder_set_mark_granule</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-perfect-timestamp" title="gst_audio_encoder_set_perfect_timestamp ()">gst_audio_encoder_set_perfect_timestamp</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-tolerance" title="gst_audio_encoder_set_tolerance ()">gst_audio_encoder_set_tolerance</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-allocation-caps" title="gst_audio_encoder_set_allocation_caps ()">gst_audio_encoder_set_allocation_caps</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-merge-tags" title="gst_audio_encoder_merge_tags ()">gst_audio_encoder_merge_tags</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoder--hard-resync" title="The “hard-resync” property">hard-resync</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoder--mark-granule" title="The “mark-granule” property">mark-granule</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoder--perfect-timestamp" title="The “perfect-timestamp” property">perfect-timestamp</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
<td class="property_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoder--tolerance" title="The “tolerance” property">tolerance</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass" title="struct GstAudioEncoderClass">GstAudioEncoderClass</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" title="GST_AUDIO_ENCODER_SINK_NAME">GST_AUDIO_ENCODER_SINK_NAME</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GstAudioEncoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" title="GST_AUDIO_ENCODER_SRC_NAME">GST_AUDIO_ENCODER_SRC_NAME</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
                <span class="lineart">╰──</span> GstAudioEncoder
</pre>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstAudioEncoder implements
 <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.description"></a><h2>Description</h2>
<p>This base class is for audio encoders turning raw audio samples into
encoded audio data.</p>
<p>GstAudioEncoder and subclass should cooperate as follows.</p>
<div class="refsect3">
<a name="id-1.2.6.9.9.4"></a><h4>Configuration</h4>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Initially, GstAudioEncoder calls <em class="parameter"><code>start</code></em>
 when the encoder element
is activated, which allows subclass to perform any global setup.</p></li>
<li class="listitem"><p>GstAudioEncoder calls <em class="parameter"><code>set_format</code></em>
 to inform subclass of the format
of input audio data that it is about to receive.  Subclass should
setup for encoding and configure various base class parameters
appropriately, notably those directing desired input data handling.
While unlikely, it might be called more than once, if changing input
parameters require reconfiguration.</p></li>
<li class="listitem"><p>GstAudioEncoder calls <em class="parameter"><code>stop</code></em>
 at end of all processing.</p></li>
</ul></div>
<p>As of configuration stage, and throughout processing, GstAudioEncoder
maintains various parameters that provide required context,
e.g. describing the format of input audio data.
Conversely, subclass can and should configure these context parameters
to inform base class of its expectation w.r.t. buffer handling.</p>
</div>
<div class="refsect3">
<a name="id-1.2.6.9.9.5"></a><h4>Data processing</h4>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<p>Base class gathers input sample data (as directed by the context's
  frame_samples and frame_max) and provides this to subclass' <em class="parameter"><code>handle_frame</code></em>
.</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem"><p>If codec processing results in encoded data, subclass should call
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> to have encoded data pushed
downstream. Alternatively, it might also call
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> (with a NULL buffer and some number of
dropped samples) to indicate dropped (non-encoded) samples.</p></li>
<li class="listitem"><p>Just prior to actually pushing a buffer downstream,
it is passed to <em class="parameter"><code>pre_push</code></em>
.</p></li>
<li class="listitem"><p>During the parsing process GstAudioEncoderClass will handle both
srcpad and sinkpad events. Sink events will be passed to subclass
if <em class="parameter"><code>event</code></em>
 callback has been provided.</p></li>
</ul></div>
</li></ul></div>
</div>
<div class="refsect3">
<a name="id-1.2.6.9.9.6"></a><h4>Shutdown phase</h4>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GstAudioEncoder class calls <em class="parameter"><code>stop</code></em>
 to inform the subclass that data
parsing will be stopped.</p></li></ul></div>
<p>Subclass is responsible for providing pad template caps for
source and sink pads. The pads need to be named "sink" and "src". It also
needs to set the fixed caps on srcpad, when the format is ensured.  This
is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em>
 function, though
it might be delayed until calling <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>
.</p>
<p>In summary, above process should have subclass concentrating on
codec data processing while leaving other matters to base class,
such as most notably timestamp handling.  While it may exert more control
in this area (see e.g. <em class="parameter"><code>pre_push</code></em>
), it is very much not recommended.</p>
<p>In particular, base class will either favor tracking upstream timestamps
(at the possible expense of jitter) or aim to arrange for a perfect stream of
output timestamps, depending on <a class="link" href="GstAudioEncoder.html#GstAudioEncoder--perfect-timestamp" title="The “perfect-timestamp” property"><span class="type">“perfect-timestamp”</span></a>.
However, in the latter case, the input may not be so perfect or ideal, which
is handled as follows.  An input timestamp is compared with the expected
timestamp as dictated by input sample stream and if the deviation is less
than <a class="link" href="GstAudioEncoder.html#GstAudioEncoder--tolerance" title="The “tolerance” property"><span class="type">“tolerance”</span></a>, the deviation is discarded.
Otherwise, it is considered a discontuinity and subsequent output timestamp
is resynced to the new position after performing configured discontinuity
processing.  In the non-perfect-timestamp case, an upstream variation
exceeding tolerance only leads to marking DISCONT on subsequent outgoing
(while timestamps are adjusted to upstream regardless of variation).
While DISCONT is also marked in the perfect-timestamp case, this one
optionally (see <a class="link" href="GstAudioEncoder.html#GstAudioEncoder--hard-resync" title="The “hard-resync” property"><span class="type">“hard-resync”</span></a>)
performs some additional steps, such as clipping of (early) input samples
or draining all currently remaining input data, depending on the direction
of the discontuinity.</p>
<p>If perfect timestamps are arranged, it is also possible to request baseclass
(usually set by subclass) to provide additional buffer metadata (in OFFSET
and OFFSET_END) fields according to granule defined semantics currently
needed by oggmux.  Specifically, OFFSET is set to granulepos (= sample count
including buffer) and OFFSET_END to corresponding timestamp (as determined
by same sample count and sample rate).</p>
<p>Things that subclass need to take care of:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Provide pad templates</p></li>
<li class="listitem"><p>Set source pad caps when appropriate</p></li>
<li class="listitem"><p>Inform base class of buffer processing needs using context's
 frame_samples and frame_bytes.</p></li>
<li class="listitem"><p>Set user-configurable properties to sane defaults for format and
 implementing codec at hand, e.g. those controlling timestamp behaviour
 and discontinuity processing.</p></li>
<li class="listitem"><p>Accept data in <em class="parameter"><code>handle_frame</code></em>
 and provide encoded results to
 <a class="link" href="GstAudioEncoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.</p></li>
</ul></div>
</div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_PAD()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;sinkpad)
</pre>
<p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
<div class="refsect3">
<a name="GST-AUDIO-ENCODER-SINK-PAD.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>obj</p></td>
<td class="parameter_description"><p>audio encoder instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_PAD()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;srcpad)
</pre>
<p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
<div class="refsect3">
<a name="GST-AUDIO-ENCODER-SRC-PAD.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>obj</p></td>
<td class="parameter_description"><p>audio encoder instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-INPUT-SEGMENT:CAPS"></a><h3>GST_AUDIO_ENCODER_INPUT_SEGMENT()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_INPUT_SEGMENT(obj)     (GST_AUDIO_ENCODER_CAST (obj)-&gt;input_segment)
</pre>
<p>Gives the input segment of the element.</p>
<div class="refsect3">
<a name="GST-AUDIO-ENCODER-INPUT-SEGMENT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>obj</p></td>
<td class="parameter_description"><p>base parse instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_AUDIO_ENCODER_OUTPUT_SEGMENT()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_OUTPUT_SEGMENT(obj)     (GST_AUDIO_ENCODER_CAST (obj)-&gt;output_segment)
</pre>
<p>Gives the output segment of the element.</p>
<div class="refsect3">
<a name="GST-AUDIO-ENCODER-OUTPUT-SEGMENT.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>obj</p></td>
<td class="parameter_description"><p>base parse instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-STREAM-LOCK:CAPS"></a><h3>GST_AUDIO_ENCODER_STREAM_LOCK()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_STREAM_LOCK(enc)   g_rec_mutex_lock (&amp;GST_AUDIO_ENCODER (enc)-&gt;stream_lock)
</pre>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-STREAM-UNLOCK:CAPS"></a><h3>GST_AUDIO_ENCODER_STREAM_UNLOCK()</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_STREAM_UNLOCK(enc) g_rec_mutex_unlock (&amp;GST_AUDIO_ENCODER (enc)-&gt;stream_lock)
</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-finish-frame"></a><h3>gst_audio_encoder_finish_frame ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
gst_audio_encoder_finish_frame (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
<p>Collects encoded data and pushes encoded data downstream.
Source pad caps must be set when this is called.</p>
<p>If <em class="parameter"><code>samples</code></em>
 &lt; 0, then best estimate is all samples provided to encoder
(subclass) so far.  <em class="parameter"><code>buf</code></em>
 may be NULL, in which case next number of <em class="parameter"><code>samples</code></em>

are considered discarded, e.g. as a result of discontinuous transmission,
and a discontinuity is marked.</p>
<p>Note that samples received in <a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass.handle-frame"><code class="function">GstAudioEncoderClass.handle_frame()</code></a>
may be invalidated by a call to this function.</p>
<div class="refsect3">
<a name="gst-audio-encoder-finish-frame.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>encoded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>samples</p></td>
<td class="parameter_description"><p>number of samples (per channel) represented by encoded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-finish-frame.returns"></a><h4>Returns</h4>
<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-allocate-output-buffer"></a><h3>gst_audio_encoder_allocate_output_buffer ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
gst_audio_encoder_allocate_output_buffer
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
<p>Helper function that allocates a buffer to hold an encoded audio frame
for <em class="parameter"><code>enc</code></em>
's current output format.</p>
<div class="refsect3">
<a name="gst-audio-encoder-allocate-output-buffer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>size</p></td>
<td class="parameter_description"><p>size of the buffer</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-allocate-output-buffer.returns"></a><h4>Returns</h4>
<p>allocated buffer. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-allocator"></a><h3>gst_audio_encoder_get_allocator ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_get_allocator (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
<p>Lets <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em>

used by the base class and its <em class="parameter"><code>params</code></em>
.</p>
<p>Unref the <em class="parameter"><code>allocator</code></em>
 after use it.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-allocator.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocator</p></td>
<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a>
used. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>params</p></td>
<td class="parameter_description"><p>the
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> of <em class="parameter"><code>allocator</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-output-format"></a><h3>gst_audio_encoder_set_output_format ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_set_output_format (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>Configure output caps on the srcpad of <em class="parameter"><code>enc</code></em>
.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-output-format.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>caps</p></td>
<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-set-output-format.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-negotiate"></a><h3>gst_audio_encoder_negotiate ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_negotiate (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Negotiate with downstream elements to currently configured <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.
Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
negotiate fails.</p>
<div class="refsect3">
<a name="gst-audio-encoder-negotiate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-negotiate.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-audio-info"></a><h3>gst_audio_encoder_get_audio_info ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstAudio.html#GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
gst_audio_encoder_get_audio_info (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<div class="refsect3">
<a name="gst-audio-encoder-get-audio-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-audio-info.returns"></a><h4>Returns</h4>
<p> a <a class="link" href="gst-plugins-base-libs-GstAudio.html#GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-drainable"></a><h3>gst_audio_encoder_get_drainable ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_get_drainable (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Queries encoder drain handling.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-drainable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-drainable.returns"></a><h4>Returns</h4>
<p> TRUE if drainable handling is enabled.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
gst_audio_encoder_get_frame_max (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-max.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-max.returns"></a><h4>Returns</h4>
<p> currently configured maximum handled frames</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-frame-samples-min"></a><h3>gst_audio_encoder_get_frame_samples_min ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
gst_audio_encoder_get_frame_samples_min
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-samples-min.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-samples-min.returns"></a><h4>Returns</h4>
<p> currently minimum requested samples per frame</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-frame-samples-max"></a><h3>gst_audio_encoder_get_frame_samples_max ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
gst_audio_encoder_get_frame_samples_max
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-samples-max.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-frame-samples-max.returns"></a><h4>Returns</h4>
<p> currently maximum requested samples per frame</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-hard-min"></a><h3>gst_audio_encoder_get_hard_min ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_get_hard_min (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Queries encoder hard minimum handling.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-hard-min.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-hard-min.returns"></a><h4>Returns</h4>
<p> TRUE if hard minimum handling is enabled.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-hard-resync"></a><h3>gst_audio_encoder_get_hard_resync ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_get_hard_resync (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-latency"></a><h3>gst_audio_encoder_get_latency ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_get_latency (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
<p>Sets the variables pointed to by <em class="parameter"><code>min</code></em>
 and <em class="parameter"><code>max</code></em>
 to the currently configured
latency.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-latency.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>min</p></td>
<td class="parameter_description"><p>a pointer to storage to hold minimum latency. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>max</p></td>
<td class="parameter_description"><p>a pointer to storage to hold maximum latency. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
gst_audio_encoder_get_lookahead (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<div class="refsect3">
<a name="gst-audio-encoder-get-lookahead.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-lookahead.returns"></a><h4>Returns</h4>
<p> currently configured encoder lookahead</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-mark-granule"></a><h3>gst_audio_encoder_get_mark_granule ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_get_mark_granule (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Queries if the encoder will handle granule marking.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-mark-granule.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-mark-granule.returns"></a><h4>Returns</h4>
<p> TRUE if granule marking is enabled.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-perfect-timestamp"></a><h3>gst_audio_encoder_get_perfect_timestamp ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_audio_encoder_get_perfect_timestamp
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Queries encoder perfect timestamp behaviour.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-perfect-timestamp.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-perfect-timestamp.returns"></a><h4>Returns</h4>
<p> TRUE if perfect timestamp setting enabled.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-get-tolerance"></a><h3>gst_audio_encoder_get_tolerance ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
gst_audio_encoder_get_tolerance (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
<p>Queries current audio jitter tolerance threshold.</p>
<div class="refsect3">
<a name="gst-audio-encoder-get-tolerance.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-get-tolerance.returns"></a><h4>Returns</h4>
<p> encoder audio jitter tolerance threshold.</p>
<p>MT safe.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-proxy-getcaps"></a><h3>gst_audio_encoder_proxy_getcaps ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
gst_audio_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
<p>Returns caps that express <em class="parameter"><code>caps</code></em>
 (or sink template caps if <em class="parameter"><code>caps</code></em>
 == NULL)
restricted to channel/rate combinations supported by downstream elements
(e.g. muxers).</p>
<div class="refsect3">
<a name="gst-audio-encoder-proxy-getcaps.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>caps</p></td>
<td class="parameter_description"><p>initial caps. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>filter</p></td>
<td class="parameter_description"><p>filter caps. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-audio-encoder-proxy-getcaps.returns"></a><h4>Returns</h4>
<p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-drainable"></a><h3>gst_audio_encoder_set_drainable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_drainable (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
<p>Configures encoder drain handling.  If drainable, subclass might
be handed a NULL buffer to have it return any leftover encoded data.
Otherwise, it is not considered so capable and will only ever be passed
real data.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-drainable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p>new state</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-frame-max"></a><h3>gst_audio_encoder_set_frame_max ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_frame_max (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
<p>Sets max number of frames accepted at once (assumed minimally 1).
Requires <em class="parameter"><code>frame_samples_min</code></em>
 and <em class="parameter"><code>frame_samples_max</code></em>
 to be the equal.</p>
<p>Note: This value will be reset to 0 every time before
<a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass.set-format"><code class="function">GstAudioEncoderClass.set_format()</code></a> is called.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-frame-max.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>number of frames</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-frame-samples-min"></a><h3>gst_audio_encoder_set_frame_samples_min ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_frame_samples_min
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
<p>Sets number of samples (per channel) subclass needs to be handed,
at least or will be handed all available if 0.</p>
<p>If an exact number of samples is required, <a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
must be called with the same number.</p>
<p>Note: This value will be reset to 0 every time before
<a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass.set-format"><code class="function">GstAudioEncoderClass.set_format()</code></a> is called.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-frame-samples-min.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>number of samples per frame</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-frame-samples-max"></a><h3>gst_audio_encoder_set_frame_samples_max ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_frame_samples_max
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
<p>Sets number of samples (per channel) subclass needs to be handed,
at most or will be handed all available if 0.</p>
<p>If an exact number of samples is required, <a class="link" href="GstAudioEncoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
must be called with the same number.</p>
<p>Note: This value will be reset to 0 every time before
<a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass.set-format"><code class="function">GstAudioEncoderClass.set_format()</code></a> is called.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-frame-samples-max.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>number of samples per frame</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-hard-min"></a><h3>gst_audio_encoder_set_hard_min ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_hard_min (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
<p>Configures encoder hard minimum handling.  If enabled, subclass
will never be handed less samples than it configured, which otherwise
might occur near end-of-data handling.  Instead, the leftover samples
will simply be discarded.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-hard-min.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p>new state</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-hard-resync"></a><h3>gst_audio_encoder_set_hard_resync ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_hard_resync (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-headers"></a><h3>gst_audio_encoder_set_headers ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_headers (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
<p>Set the codec headers to be sent downstream whenever requested.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-headers.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>headers</p></td>
<td class="parameter_description"><p>a list of
<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Buffer]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-latency"></a><h3>gst_audio_encoder_set_latency ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_latency (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
<p>Sets encoder latency.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-latency.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>min</p></td>
<td class="parameter_description"><p>minimum latency</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>max</p></td>
<td class="parameter_description"><p>maximum latency</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-lookahead"></a><h3>gst_audio_encoder_set_lookahead ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_lookahead (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
<p>Sets encoder lookahead (in units of input rate samples)</p>
<p>Note: This value will be reset to 0 every time before
<a class="link" href="GstAudioEncoder.html#GstAudioEncoderClass.set-format"><code class="function">GstAudioEncoderClass.set_format()</code></a> is called.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-lookahead.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>num</p></td>
<td class="parameter_description"><p>lookahead</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-mark-granule"></a><h3>gst_audio_encoder_set_mark_granule ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_mark_granule (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
<p>Enable or disable encoder granule handling.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-mark-granule.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p>new state</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-perfect-timestamp"></a><h3>gst_audio_encoder_set_perfect_timestamp ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_perfect_timestamp
                               (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
<p>Enable or disable encoder perfect output timestamp preference.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-perfect-timestamp.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p>new state</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-tolerance"></a><h3>gst_audio_encoder_set_tolerance ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_tolerance (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> tolerance</code></em>);</pre>
<p>Configures encoder audio jitter tolerance threshold.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-tolerance.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tolerance</p></td>
<td class="parameter_description"><p>new tolerance</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-set-allocation-caps"></a><h3>gst_audio_encoder_set_allocation_caps ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_set_allocation_caps (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *allocation_caps</code></em>);</pre>
<p>Sets a caps in allocation query which are different from the set
pad's caps. Use this function before calling
<a class="link" href="GstAudioEncoder.html#gst-audio-encoder-negotiate" title="gst_audio_encoder_negotiate ()"><code class="function">gst_audio_encoder_negotiate()</code></a>. Setting to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> the allocation
query will use the caps from the pad.</p>
<div class="refsect3">
<a name="gst-audio-encoder-set-allocation-caps.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation_caps</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix06.html#api-index-1.10">1.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-encoder-merge-tags"></a><h3>gst_audio_encoder_merge_tags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_audio_encoder_merge_tags (<em class="parameter"><code><a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
<p>Sets the audio encoder tags and how they should be merged with any
upstream stream tags. This will override any tags previously-set
with <a class="link" href="GstAudioEncoder.html#gst-audio-encoder-merge-tags" title="gst_audio_encoder_merge_tags ()"><code class="function">gst_audio_encoder_merge_tags()</code></a>.</p>
<p>Note that this is provided for convenience, and the subclass is
not required to use this and can still do tag handling on its own.</p>
<p>MT safe.</p>
<div class="refsect3">
<a name="gst-audio-encoder-merge-tags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>enc</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tags</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL to unset
previously-set tags. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>mode</p></td>
<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstAudioEncoder-struct"></a><h3>struct GstAudioEncoder</h3>
<pre class="programlisting">struct GstAudioEncoder;</pre>
<p>The opaque <a class="link" href="GstAudioEncoder.html" title="GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> data structure.</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioEncoderClass"></a><h3>struct GstAudioEncoderClass</h3>
<pre class="programlisting">struct GstAudioEncoderClass {
  GstElementClass element_class;

  /* virtual methods for subclasses */

  gboolean      (*start)              (GstAudioEncoder *enc);

  gboolean      (*stop)               (GstAudioEncoder *enc);

  gboolean      (*set_format)         (GstAudioEncoder *enc,
                                       GstAudioInfo        *info);

  GstFlowReturn (*handle_frame)       (GstAudioEncoder *enc,
                                       GstBuffer *buffer);

  void          (*flush)              (GstAudioEncoder *enc);

  GstFlowReturn (*pre_push)           (GstAudioEncoder *enc,
                                       GstBuffer **buffer);

  gboolean      (*sink_event)         (GstAudioEncoder *enc,
                                       GstEvent *event);

  gboolean      (*src_event)          (GstAudioEncoder *enc,
                                       GstEvent *event);

  GstCaps *     (*getcaps)            (GstAudioEncoder *enc, GstCaps *filter);

  gboolean      (*open)               (GstAudioEncoder *enc);

  gboolean      (*close)              (GstAudioEncoder *enc);

  gboolean      (*negotiate)          (GstAudioEncoder *enc);

  gboolean      (*decide_allocation)  (GstAudioEncoder *enc, GstQuery *query);

  gboolean      (*propose_allocation) (GstAudioEncoder * enc,
                                       GstQuery * query);

  gboolean      (*transform_meta)     (GstAudioEncoder *enc, GstBuffer *outbuf,
                                       GstMeta *meta, GstBuffer *inbuf);

  gboolean      (*sink_query)         (GstAudioEncoder *encoder,
				       GstQuery *query);

  gboolean      (*src_query)          (GstAudioEncoder *encoder,
				       GstQuery *query);
};
</pre>
<p>Subclasses can override any of the available virtual methods or not, as
needed. At minimum <em class="parameter"><code>set_format</code></em>
 and <em class="parameter"><code>handle_frame</code></em>
 needs to be overridden.</p>
<div class="refsect3">
<a name="GstAudioEncoderClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioEncoderClass.element-class"></a>element_class</code></em>;</p></td>
<td class="struct_member_description"><p>The parent class structure</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.start"></a>start</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Called when the element starts processing.
Allows opening external resources.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.stop"></a>stop</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Called when the element stops processing.
Allows closing external resources.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.set-format"></a>set_format</code></em> ()</p></td>
<td class="struct_member_description"><p>Notifies subclass of incoming data format.
GstAudioInfo contains the format according to provided caps.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td>
<td class="struct_member_description"><p>Provides input samples (or NULL to clear any remaining data)
according to directions as configured by the subclass
using the API.  Input data ref management is performed
by base class, subclass should not care or intervene,
and input data is only valid until next call to base class,
most notably a call to <a class="link" href="GstAudioEncoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.flush"></a>flush</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Instructs subclass to clear any codec caches and discard
any pending samples and not yet returned encoded data.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.pre-push"></a>pre_push</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Called just prior to pushing (encoded data) buffer downstream.
Subclass has full discretionary access to buffer,
and a not OK flow return will abort downstream pushing.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.sink-event"></a>sink_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Event handler on the sink pad. Subclasses should chain up to
the parent implementation to invoke the default handler.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.src-event"></a>src_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Event handler on the src pad. Subclasses should chain up to
the parent implementation to invoke the default handler.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Allows for a custom sink getcaps implementation (e.g.
for multichannel input specification).  If not implemented,
default returns gst_audio_encoder_proxy_getcaps
applied to sink template caps.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.open"></a>open</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Called when the element changes to GST_STATE_READY.
Allows opening external resources.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.close"></a>close</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Called when the element changes to GST_STATE_NULL.
Allows closing external resources.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.negotiate"></a>negotiate</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Negotiate with downstream and configure buffer pools, etc.
Subclasses should chain up to the parent implementation to
invoke the default handler.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Setup the allocation parameters for allocating output
buffers. The passed in query contains the result of the
downstream allocation query.
Subclasses should chain up to the parent implementation to
invoke the default handler.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Propose buffer allocation parameters for upstream elements.
Subclasses should chain up to the parent implementation to
invoke the default handler.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the
output buffer. By default this method copies all meta without
tags and meta with only the "audio" tag. subclasses can
implement this method and return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be
copied. Since: 1.6</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.sink-query"></a>sink_query</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Query handler on the sink pad. This function should
return TRUE if the query could be performed. Subclasses
should chain up to the parent implementation to invoke the
default handler. Since: 1.6</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.src-query"></a>src_query</code></em> ()</p></td>
<td class="struct_member_description"><p>Optional.
Query handler on the source pad. This function should
return TRUE if the query could be performed. Subclasses
should chain up to the parent implementation to invoke the
default handler. Since: 1.6</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_NAME</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_NAME "sink"
</pre>
<p>the name of the templates for the sink pad</p>
</div>
<hr>
<div class="refsect2">
<a name="GST-AUDIO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_NAME</h3>
<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_NAME	        "src"
</pre>
<p>the name of the templates for the source pad</p>
</div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstAudioEncoder--hard-resync"></a><h3>The <code class="literal">“hard-resync”</code> property</h3>
<pre class="programlisting">  “hard-resync”              <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Perform clipping and sample flushing upon discontinuity.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioEncoder--mark-granule"></a><h3>The <code class="literal">“mark-granule”</code> property</h3>
<pre class="programlisting">  “mark-granule”             <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Apply granule semantics to buffer metadata (implies perfect-timestamp).</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioEncoder--perfect-timestamp"></a><h3>The <code class="literal">“perfect-timestamp”</code> property</h3>
<pre class="programlisting">  “perfect-timestamp”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Favour perfect timestamps over tracking upstream timestamps.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioEncoder--tolerance"></a><h3>The <code class="literal">“tolerance”</code> property</h3>
<pre class="programlisting">  “tolerance”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
<p>Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns).</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 40000000</p>
</div>
</div>
<div class="refsect1">
<a name="GstAudioEncoder.see-also"></a><h2>See Also</h2>
<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>